package com.itheima.d2_file;

import java.io.File;

//目标：掌握File对象的创建，了解相对和绝对路径
public class Demo1 {
    public static void main(String[] args) {
        /**
         * 构造方法：
         *      File(String pathname)：根据文件路径创建文件对象
         *      File(String parent, String child)：根据父路径名字符串和子路径名字符串创建文件对象
         *      File(File parent, String child)：根据父路径对应文件对象和子路径名字符串创建文件对象
         *
         * 绝对路径：从盘符开始的路径
         * 相对路径：不带盘符，默认直接到当前工程下的目录寻找文件
         */
        //1.需求：创建一个File对象，代表桌面上test文件夹，假设这个文件夹已存在！
        //利用第一个构造
        File testFile = new File("E:\\ideaProject\\basic-code\\day11");
        //File对象中封装的其实就是目标文件/文件夹的路径信息
        System.out.println(testFile);
        System.out.println(testFile.getAbsolutePath());

        System.out.println();
        //2.需求：创建一个File对象，代表桌面上test文件夹下a.txt文件，此时这个文件不存在！
        //利用第二个构造
        File aFile = new File("C:\\Users\\姜志成\\Desktop\\test", "a.txt");
        //代码运行不报错，说明File代表的文件/文件夹在磁盘上可能存在，也可能不存在！
        System.out.println(aFile);

        //3.需求：创建一个File对象，代表桌面上test文件夹下b.txt文件，用第三个构造
        File bFile = new File(testFile, "b.txt");
        System.out.println(bFile);

        //4.需求：创建一个File对象，代表本模块下的c.txt文件。利用相对路径（不带盘符，相对的是当前项目）
        File cFile = new File("/c.txt");
        //打印File对象，拿到的是创建对象时给的路径
        System.out.println(cFile);
        //获取cFile的路径
        String cFileAbsolutePath = cFile.getAbsolutePath();
        System.out.println(cFileAbsolutePath);

        //5.注意：有些同学的项目结构有问题，相对路径使用会出现错误
        //参考右上方运行绿色箭头旁边的向下的三角，选择 Edit Configuration...，检查 Working Directory
    }
}
